<?php
// 应用公共文件

if(!function_exists('create_token'))
{
    function create_token(string $extra = '') : string
    {
        $salt = env('project.unique_identification', 'adminmatrix_');
        $encryptSalt = md5( $salt . uniqid());
        return md5($salt . $extra . time() . $encryptSalt);
    }
}



// 这是系统自动生成的公共文件
if(!function_exists('buildTree'))
{
    /**
     * 递归构建树形结构
     * @param array $data 原始数据数组
     * @param string $key 主键字段名 默认'id'
     * @param string $parent_id 父级ID字段名 默认'parent_id'
     * @param string $child 子节点字段名 默认'children'
     * @param mixed $parentValue 当前父节点值 默认0
     * @return array 树形结构数组
     */
    function buildTree(array $data, string $key = 'id', string $parent_id = 'parent_id', string $child = 'children', int $parentValue = 0): array
    {
        $tree = [];
        foreach ($data as $item) {
            // 匹配当前层级的父节点
            if ($item[$parent_id] == $parentValue) {
                // 递归查找子节点
                $children = buildTree($data, $key, $parent_id, $child, $item[$key]);
                if (!empty($children)) {
                    $item[$child] = $children;
                }
                $tree[] = $item;
            }
        }
        return $tree;
    }
}